package com.tuniu.agents.common.service.itinerary;


import com.tuniu.agents.common.entity.itinerary.BaseItinerary;
import com.tuniu.agents.common.entity.itinerary.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DefaultItineraryServiceImpl implements ItineraryService {

    private static final Logger logger = LoggerFactory.getLogger(DefaultItineraryServiceImpl.class);

    @Override
    public BaseItinerary buildItinerary(String conversationId, String commandId) {
        logger.info("build itinerary");
        return null;
    }

    @Override
    public BaseItinerary buildItineraryInformation(String conversationId, String commandId, String destination, String departureDate, String returnDate) {
        logger.info("build itinerary information");
        return null;
    }

    /**
     * save/update resource
     *
     * @param conversationId sessionId
     * @param commandId      commandId
     * @param resource       resource
     * @return itinerary is not null when successfully add/update, and is null when add/update fails
     */
    @Override
    public BaseItinerary saveResource(String conversationId, String commandId, Resource resource) {
        logger.info("save/update resource");
        return null;
    }

    /**
     * remove resource from itinerary
     *
     * @param conversationId sessionId
     * @param commandId      commandId
     * @param resource       resource
     * @return removeItem is not null when successfully remove, and is null when there is no input resource in the itinerary
     */
    @Override
    public Resource removeResource(String conversationId, String commandId, Resource resource) {
        logger.info("remove resource");
        return null;
    }

    @Override
    public Resource getResource(String conversationId, String commandId, Resource resource) {
        logger.info("get resource");
        return null;
    }

    @Override
    public BaseItinerary getItinerary(String conversationId, String commandId) {
        logger.info("get itinerary");
        return null;
    }

    /**
     * build markdown
     */
    @Override
    public String buildMarkdown(String conversationId, String commandId) {
        logger.info("build markdown");
        return null;
    }

    /**
     * build itinerary and resource markdown
     */
    @Override
    public String buildItineraryMarkdown(String conversationId, String commandId) {
        logger.info("build itinerary markdown");
        return null;
    }

    /**
     * build resource markdown
     */
    @Override
    public String buildResourceMarkdown(String conversationId, String commandId) {
        return "";
    }

    @Override
    public String getItineraryId(String conversationId) {
        logger.info("get itinerary id");
        return null;
    }
}
